/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package puzzleevolution;

/**
 *  Trida shromazdujici nastavitelne parametry programu
 * 
 * 
 * @author vorispe1
 */
public class Config {

    //obrazek
    public static String jmenoObrazku = "D:\\colorsA.png"; // colors Hind300A Kocka300A
    //public static String jmenoObrazku = "D:\\alfa.png";
    //public static String jmenoObrazku = "E:\\test.jpg";
    public static int rozmeryObrazkuX = 300;
    public static int rozmeryObrazkuY = 300;

    //dilky
    public static int delkaDilku = 60;
    public static int pocetDilkuX = rozmeryObrazkuX / delkaDilku;
    public static int pocetDilkuY = rozmeryObrazkuY / delkaDilku;;

    //evoluce
    static int velikostPopulace = 100;
    static int pocetPopulaci = 5000;

    static double pravdepodobnostMutace  = 0.3;
    static double pravdepodobnostKrizeni = 0.8;
    static int pocetElit = 10;
    static double uspesnost = 0.000001;

    /*
     * typEvoluce
     * 0 - testovaci na zkoumani operaci s jedinci
     * 1 - kazdy jedinec je bud zmutovan nebo zkrizen a pokud je vysledek lepsi, nahradi puvodniho jedince. nastavuje se jen pravdepodobnostMutace.
     * 2 - upravena verze 1 pro rychlejsi beh, ktery ale uprednostnuje nejlepsi jedince, a tak nemusi vzdy fungovat
     * 3 - klasicke schema evoluce
     */
    static int typEvoluce = 2;

    /*
     * verzeFitness
     * 0 - manhattanska vzdalenost dilku od jeho spravneho umisteni
     * 1 - rozdily RGB hodnot sousednich hran
     * 2 - rozdily HSB hodnot sousednich hran
     * 3 - skladani vnejsiho okraje puzzle
     * 4 - rozdily rgb hodnot sousednich hran + skladani vnejsiho okraje puzzle
     * 5 - rozdily hsb hodnot sousednich hran + skladani vnejsiho okraje puzzle
     * 6 - RGB jako souradnice bodu v prostoru
     */
    static int verzeFitness = 4;


    static float spravnaFitness = 0;
    static Chromosome puvodniObraz;

    public static boolean vypisovatStatisticku = true;

}
